#include<iostream>

using namespace std;

const int N=50;
bool st[N];
char ch[N][N];
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int n,m,ans=-99999,sum;

void dfs(int x,int y,int z)
{
// 	cout<<x<<" "<<y<<" "<<z<<endl;
	int idx=ch[1][1]-'A';
	st[idx]=1;
	for(int i=0;i<4;i++)
	{
		int xx=x+dx[i];
		int yy=y+dy[i];
		
		if(xx>=1 && xx<=n && yy>=1 && yy<=m)
		{
			int idx=ch[xx][yy]-'A';
			if(st[idx]==1) continue;
			st[idx]=1;
			dfs(xx,yy,z+1);
			st[idx]=0;
		}
	}
	ans=max(ans,z);
	return;
}

int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>ch[i][j];
		}
	}
	dfs(1,1,1);
	cout<<ans<<endl;
	return 0;
}
